home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume12 / acm / part05 < prev    next >
Encoding:
Internet Message Format  |  1991-03-01  |  48.3 KB

  1. From: riley@mipsdal.mips.com (Riley Rainey)
  2. Newsgroups: comp.sources.x
  3. Subject: v12i010: acm - X aerial combat simulation, Part05/09
  4. Message-ID: <8987@exodus.Eng.Sun.COM>
  5. Date: 2 Mar 91 08:32:38 GMT
  6. Approved: argv@sun.com
  7.  
  8. Submitted-by: riley@mipsdal.mips.com (Riley Rainey)
  9. Posting-number: Volume 12, Issue 10
  10. Archive-name: acm/part05
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 5 (of 9)."
  19. # Contents:  acm/V/lib/Makefile acm/V/test/fullrwy acm/V/test/rwy
  20. #   acm/fsim/missile.c
  21. # Wrapped by riley@mipsdal on Thu Feb 14 10:09:19 1991
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f 'acm/V/lib/Makefile' -a "${1}" != "-c" ; then 
  24.   echo shar: Will not clobber existing file \"'acm/V/lib/Makefile'\"
  25. else
  26. echo shar: Extracting \"'acm/V/lib/Makefile'\" \(11709 characters\)
  27. sed "s/^X//" >'acm/V/lib/Makefile' <<'END_OF_FILE'
  28. X# Makefile generated by imake - do not edit!
  29. X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
  30. X
  31. X###########################################################################
  32. X# Makefile generated from "Imake.tmpl" and <Imakefile>
  33. X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
  34. X#
  35. X# Platform-specific parameters may be set in the appropriate .cf
  36. X# configuration files.  Site-wide parameters may be set in the file
  37. X# site.def.  Full rebuilds are recommended if any parameters are changed.
  38. X#
  39. X# If your C preprocessor doesn't define any unique symbols, you'll need
  40. X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
  41. X# "make Makefile", "make Makefiles", or "make World").
  42. X#
  43. X# If you absolutely can't get imake to work, you'll need to set the
  44. X# variables at the top of each Makefile as well as the dependencies at the
  45. X# bottom (makedepend will do this automatically).
  46. X#
  47. X
  48. X###########################################################################
  49. X# platform-specific configuration parameters - edit Mips.cf to change
  50. X
  51. X# platform:  $XConsortium: Mips.cf,v 1.2 89/01/11 14:58:19 jim Exp $
  52. X# operating system:             RISCOS
  53. X
  54. X         SYSVTYPE = -systype sysv
  55. X          BSDTYPE = -systype bsd43
  56. X         SYSVDEFS = -DMips -DSYSV
  57. X          BSDDEFS = -DMips -DBSD43
  58. X         SYSVINCS = -I$(DESTDIR)/usr/include/bsd
  59. X          BSDINCS =
  60. X         SYSVLIBS = -lbsd -lmld
  61. X          BSDLIBS = -lmld
  62. X
  63. X          SYSTYPE = $(BSDTYPE)
  64. X          SYSDEFS = $(BSDDEFS)
  65. X          SYSINCS = $(BSDINCS)
  66. X          SYSLIBS = $(BSDLIBS)
  67. X
  68. X     OPTIM = -O -Olimit 2000 -Wf,-XNd8400,-XNp12000
  69. X     CCOPT = -signed
  70. X   DEFINES = -D_NO_PROTO
  71. XSYSVCFLAGS = $(OPTIM) $(CCOPT) $(SYSVTYPE) $(INCLUDES) $(SYSVDEFS) $(SYSVINCS) $(DEFINES)
  72. X BSDCFLAGS = $(OPTIM) $(CCOPT) $(BSDTYPE)  $(INCLUDES) $(BSDDEFS)  $(BSDINCS)  $(DEFINES)
  73. X
  74. X           ETCDIR = /etc
  75. X          ULIBDIR = /usr/lib
  76. X
  77. X      XINSTALLDIR = RISCwindows4.0
  78. X     INSTALLFLAGS = -m 0555
  79. X        RS1210DIR = $(DESTDIR)/usr/$(XINSTALLDIR)/RS1210
  80. X    CONTRIBBINDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/contrib/bin
  81. XCONTRIBAPPSDEFDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/contrib/lib/app-defaults
  82. X    CONTRIBMANDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/contrib/man
  83. X    CONTRIBSRCDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/contrib/src
  84. X     RS1210LIBDIR = $(LIBDIR)/ncd
  85. X
  86. X          BINPATH = /usr/bin/X11
  87. X          LIBPATH = /usr/lib/X11
  88. X          ETCPATH = /usr/etc/X11
  89. X          ADMPATH = /usr/adm
  90. X          NCDPATH = /usr/X11/ncd
  91. X       NCDLIBPATH = $(LIBPATH)/ncd
  92. X        XINITPATH = $(LIBPATH)/xinit
  93. X          XDMPATH = $(ETCPATH)/xdm
  94. X          UWMPATH = $(LIBPATH)/uwm
  95. X          AWMPATH = $(LIBPATH)/awm
  96. X          MWMPATH = $(LIBPATH)/mwm
  97. X          TWMPATH = $(LIBPATH)/twm
  98. X     XAPPLOADPATH = $(LIBPATH)/app-defaults
  99. X        RS1210SRC = $(TOP)/rs1210
  100. X
  101. X       MOTIFSRC = $(TOP)/motif
  102. X        MLIBSRC = $(MOTIFSRC)/lib
  103. X     MCLIENTSRC = $(MOTIFSRC)/clients
  104. X       MDEMOSRC = $(MOTIFSRC)/demos
  105. X    MTOOLKITSRC = $(MOTIFSRC)/X11R4/lib/Xt
  106. X     MWIDGETSRC = $(MLIBSRC)/Xm
  107. X   INCLUDEXMSRC = $(MLIBSRC)/Xm
  108. X   MRESOURCESRC = $(MLIBSRC)/Mrm
  109. X         MWMDIR = $(LIBDIR)/Mwm
  110. X     DEMOBINDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/demos/bin
  111. X     DEMOSRCDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/demos/src
  112. X       MINCLUDE = $(TOP)/include
  113. X         UILSRC = $(MCLIENTSRC)/uil
  114. X            UIL = $(UILSRC)/uil
  115. X
  116. X      XMTOOLLIB = $(MTOOLKITSRC)/libXt.a
  117. X          XMLIB = $(MWIDGETSRC)/libXm.a
  118. X   MRESOURCELIB = $(MRESOURCESRC)/libMrm.a
  119. X         UILLIB = $(UILSRC)/libUil.a
  120. X
  121. X  BUILDTOOLSDIR = $(TOP)/buildtools
  122. XCROSSENVOVERRIDE= DESTROOT=/ COMP_TARGET_ROOT=/ ETCDIR=/etc ULIBDIR=/usr/lib
  123. X
  124. X###########################################################################
  125. X# site-specific configuration parameters - edit site.def to change
  126. X
  127. X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
  128. X
  129. X            SHELL =     /bin/sh
  130. X
  131. X              TOP = ../../.
  132. X      CURRENT_DIR = ./V/lib
  133. X
  134. X               AR = ar clr
  135. X  BOOTSTRAPCFLAGS = $(SYSDEFS)
  136. X               CC = cc
  137. X
  138. X         COMPRESS = compress
  139. X              CPP = /lib/cpp $(STD_CPP_DEFINES)
  140. X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
  141. X          INSTALL = $(ETCDIR)/mipsinstall
  142. X               LD = ld
  143. X             LINT = lint
  144. X      LINTLIBFLAG = -C
  145. X         LINTOPTS = -axz
  146. X               LN = ln -s
  147. X             MAKE = make ETCDIR='$(ETCDIR)' ULIBDIR='$(ULIBDIR)'
  148. X               MV = mv
  149. X               CP = cp
  150. X           RANLIB = /bin/true
  151. X  RANLIBINSTFLAGS =
  152. X               RM = rm -f
  153. X     STD_INCLUDES =
  154. X  STD_CPP_DEFINES = $(SYSDEFS)
  155. X      STD_DEFINES = $(SYSDEFS) $(SYSINCS)
  156. X EXTRA_LOAD_FLAGS =
  157. X  EXTRA_LIBRARIES = $(SYSLIBS)
  158. X             TAGS = ctags
  159. X
  160. X   SIGNAL_DEFINES = -DSIGNALRETURNSINT
  161. X
  162. X    PROTO_DEFINES =
  163. X
  164. X     INSTPGMFLAGS =
  165. X
  166. X     INSTBINFLAGS = -m 0755
  167. X     INSTUIDFLAGS = -m 4755
  168. X     INSTLIBFLAGS = -m 0664
  169. X     INSTINCFLAGS = -m 0444
  170. X     INSTMANFLAGS = -m 0444
  171. X     INSTDATFLAGS = -m 0444
  172. X    INSTKMEMFLAGS = -g sys -m 2755
  173. X
  174. X          DESTDIR = $(DESTROOT)
  175. X
  176. X     TOP_INCLUDES = -I$(INCROOT)
  177. X
  178. X      CDEBUGFLAGS = $(OPTIM) $(CCOPT) $(SYSTYPE)
  179. X        CCOPTIONS =
  180. X      COMPATFLAGS =
  181. X
  182. X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
  183. X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS) $(EXT_DEFINES)
  184. X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
  185. X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
  186. X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
  187. X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
  188. X   LDCOMBINEFLAGS = -X -r
  189. X
  190. X        MACROFILE = Mips.cf
  191. X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut *.u *.b
  192. X
  193. X    IMAKE_DEFINES =
  194. X
  195. X         IRULESRC = $(CONFIGDIR)
  196. X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
  197. X
  198. X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
  199. X            $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
  200. X            $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
  201. X
  202. X###########################################################################
  203. X# X Window System Build Parameters
  204. X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
  205. X
  206. X###########################################################################
  207. X# X Window System make variables; this need to be coordinated with rules
  208. X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
  209. X
  210. X          PATHSEP = /
  211. X        USRLIBDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/lib
  212. X           BINDIR = $(DESTDIR)/usr/$(XINSTALLDIR)/bin
  213. X          INCROOT = $(DESTDIR)/usr/$(XINSTALLDIR)/include
  214. X     BUILDINCROOT = $(TOP)
  215. X      BUILDINCDIR = $(BUILDINCROOT)/X11
  216. X      BUILDINCTOP = ..
  217. X           INCDIR = $(INCROOT)/X11
  218. X           ADMDIR = $(DESTDIR)/usr/adm
  219. X           LIBDIR = $(USRLIBDIR)/X11
  220. X        CONFIGDIR = $(LIBDIR)/config
  221. X       LINTLIBDIR = $(USRLIBDIR)/lint
  222. X
  223. X          FONTDIR = $(LIBDIR)/fonts
  224. X         XINITDIR = $(LIBDIR)/xinit
  225. X           XDMDIR = $(DESTDIR)/usr/X11/etc/xdm
  226. X           AWMDIR = $(LIBDIR)/awm
  227. X           TWMDIR = $(LIBDIR)/twm
  228. X           GWMDIR = $(LIBDIR)/gwm
  229. X          MANPATH = $(DESTDIR)/usr/$(XINSTALLDIR)/man/cat
  230. X    MANSOURCEPATH = $(MANPATH)/man
  231. X           MANDIR = $(MANSOURCEPATH)1
  232. X        LIBMANDIR = $(MANSOURCEPATH)3
  233. X      XAPPLOADDIR = $(LIBDIR)/app-defaults
  234. X
  235. X       FONTCFLAGS = -t
  236. X
  237. X     INSTAPPFLAGS = $(INSTDATFLAGS)
  238. X
  239. X            IMAKE = imake
  240. X           DEPEND = makedepend
  241. X              RGB = rgb
  242. X            FONTC = bdftosnf
  243. X        MKFONTDIR = mkfontdir
  244. X        MKDIRHIER =     /bin/sh $(BINDIR)/mkdirhier.sh
  245. X
  246. X        CONFIGSRC = $(TOP)/config
  247. X        CLIENTSRC = $(TOP)/clients
  248. X          DEMOSRC = $(TOP)/demos
  249. X           LIBSRC = $(TOP)/lib
  250. X          FONTSRC = $(TOP)/fonts
  251. X       INCLUDESRC = $(TOP)/X11
  252. X        SERVERSRC = $(TOP)/server
  253. X          UTILSRC = $(TOP)/util
  254. X        SCRIPTSRC = $(UTILSRC)/scripts
  255. X       EXAMPLESRC = $(TOP)/examples
  256. X       CONTRIBSRC = $(TOP)/../contrib
  257. X           DOCSRC = $(TOP)/doc
  258. X           RGBSRC = $(TOP)/rgb
  259. X        DEPENDSRC = $(UTILSRC)/makedepend
  260. X         IMAKESRC = $(CONFIGSRC)
  261. X         XAUTHSRC = $(LIBSRC)/Xau
  262. X          XLIBSRC = $(LIBSRC)/X
  263. X           XMUSRC = $(LIBSRC)/Xmu
  264. X       TOOLKITSRC = $(LIBSRC)/Xt
  265. X       AWIDGETSRC = $(LIBSRC)/Xaw
  266. X       OLDXLIBSRC = $(LIBSRC)/oldX
  267. X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
  268. X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
  269. X     MKFONTDIRSRC = $(FONTSRC)/mkfontdir
  270. X     EXTENSIONSRC = $(TOP)/extensions
  271. X
  272. X  DEPEXTENSIONLIB =  $(USRLIBDIR)/libXext.a
  273. X     EXTENSIONLIB =               -lXext
  274. X
  275. X          DEPXLIB = $(DEPEXTENSIONLIB)  $(USRLIBDIR)/libX11.a
  276. X             XLIB = $(EXTENSIONLIB)               -lX11
  277. X
  278. X      DEPXAUTHLIB =  $(USRLIBDIR)/libXau.a
  279. X         XAUTHLIB =               -lXau
  280. X
  281. X        DEPXMULIB =  $(USRLIBDIR)/libXmu.a
  282. X           XMULIB =               -lXmu
  283. X
  284. X       DEPOLDXLIB =  $(USRLIBDIR)/liboldX.a
  285. X          OLDXLIB =               -loldX
  286. X
  287. X      DEPXTOOLLIB =  $(USRLIBDIR)/libXt.a
  288. X         XTOOLLIB =               -lXt
  289. X
  290. X        DEPXAWLIB =  $(USRLIBDIR)/libXaw.a
  291. X           XAWLIB =               -lXaw
  292. X
  293. X LINTEXTENSIONLIB =  $(USRLIBDIR)/llib-lXext.ln
  294. X         LINTXLIB =  $(USRLIBDIR)/llib-lX11.ln
  295. X          LINTXMU =  $(USRLIBDIR)/llib-lXmu.ln
  296. X        LINTXTOOL =  $(USRLIBDIR)/llib-lXt.ln
  297. X          LINTXAW =  $(USRLIBDIR)/llib-lXaw.ln
  298. X
  299. X          DEPLIBS = $(LOCAL_LIBRARIES)
  300. X
  301. X         DEPLIBS1 = $(DEPLIBS)
  302. X         DEPLIBS2 = $(DEPLIBS)
  303. X         DEPLIBS3 = $(DEPLIBS)
  304. X
  305. X###########################################################################
  306. X# Imake rules for building libraries, programs, scripts, and data files
  307. X# rules:  $XConsortium: Imake.rules,v 1.70 90/05/04 16:57:30 keith Exp $
  308. X
  309. X###########################################################################
  310. X# start of Imakefile
  311. X
  312. XCDEBUGFLAGS = -systype bsd43 -O
  313. X
  314. XSRCS    = \
  315. X      VOpenVp.c \
  316. X      VResizeVp.c \
  317. X      VCloseVp.c \
  318. X      VGetEyeSpace.c \
  319. X      VGetPlanes.c \
  320. X      VReadObject.c \
  321. X      VWriteObject.c \
  322. X      VAllocColor.c \
  323. X      VBindColors.c \
  324. X      VExpBuffer.c \
  325. X      VCrPoly.c \
  326. X      VCrPoints.c \
  327. X      VCopyPoly.c \
  328. X      VDrawPoly.c \
  329. X      VFillPoly.c \
  330. X      VDrawString.c \
  331. X      VClipPoly.c \
  332. X      VDotProd.c \
  333. X      VCrossProd.c \
  334. X      VRotate.c \
  335. X      VTransPoly.c \
  336. X      VWorldToScr.c \
  337. X      VEyeToScr.c \
  338. X      VTrans.c \
  339. X      VIdentMat.c \
  340. X      VMatMult.c \
  341. X      VMatDet.c \
  342. X      VMatInvert.c \
  343. X      VPrintPoly.c \
  344. X      Vmalloc.c \
  345. X      strdup.c
  346. X
  347. XOBJS    = \
  348. X      VOpenVp.o \
  349. X      VResizeVp.o \
  350. X      VCloseVp.o \
  351. X      VGetEyeSpace.o \
  352. X      VGetPlanes.o \
  353. X      VReadObject.o \
  354. X      VWriteObject.o \
  355. X      VAllocColor.o \
  356. X      VBindColors.o \
  357. X      VExpBuffer.o \
  358. X      VCrPoly.o \
  359. X      VCrPoints.o \
  360. X      VCopyPoly.o \
  361. X      VDrawPoly.o \
  362. X      VFillPoly.o \
  363. X      VDrawString.o \
  364. X      VClipPoly.o \
  365. X      VDotProd.o \
  366. X      VCrossProd.o \
  367. X      VRotate.o \
  368. X      VTransPoly.o \
  369. X      VWorldToScr.o \
  370. X      VEyeToScr.o \
  371. X      VTrans.o \
  372. X      VIdentMat.o \
  373. X      VMatMult.o \
  374. X      VMatDet.o \
  375. X      VMatInvert.o \
  376. X      VPrintPoly.o \
  377. X      Vmalloc.o \
  378. X      strdup.o
  379. X
  380. Xall:: libV.a
  381. X
  382. XlibV.a: $(OBJS)
  383. X    $(RM) $@
  384. X    $(AR) $(ARFLAGS) $@ $(OBJS)
  385. X    $(RANLIB) $@
  386. X
  387. Xdepend::
  388. X    $(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
  389. X
  390. X###########################################################################
  391. X# common rules for all Makefiles - do not edit
  392. X
  393. Xemptyrule::
  394. X
  395. Xclean::
  396. X    $(RM_CMD) \#*
  397. X
  398. XMakefile::
  399. X    -@if [ -f Makefile ]; then \
  400. X        echo "    $(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
  401. X        $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
  402. X    else exit 0; fi
  403. X    $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
  404. X
  405. Xtags::
  406. X    $(TAGS) -w *.[ch]
  407. X    $(TAGS) -xw *.[ch] > TAGS
  408. X
  409. X###########################################################################
  410. X# empty rules for directories that do not have SUBDIRS - do not edit
  411. X
  412. Xinstall::
  413. X    @echo "install in $(CURRENT_DIR) done"
  414. X
  415. Xinstall.man::
  416. X    @echo "install.man in $(CURRENT_DIR) done"
  417. X
  418. XMakefiles::
  419. X
  420. Xincludes::
  421. X
  422. X###########################################################################
  423. X# dependencies generated by makedepend
  424. X
  425. END_OF_FILE
  426. if test 11709 -ne `wc -c <'acm/V/lib/Makefile'`; then
  427.     echo shar: \"'acm/V/lib/Makefile'\" unpacked with wrong size!
  428. fi
  429. # end of 'acm/V/lib/Makefile'
  430. fi
  431. if test -f 'acm/V/test/fullrwy' -a "${1}" != "-c" ; then 
  432.   echo shar: Will not clobber existing file \"'acm/V/test/fullrwy'\"
  433. else
  434. echo shar: Extracting \"'acm/V/test/fullrwy'\" \(11276 characters\)
  435. sed "s/^X//" >'acm/V/test/fullrwy' <<'END_OF_FILE'
  436. XRunway
  437. X280 69
  438. X1 0.000000 -75.000000 0.000000
  439. X2 12000.000000 -75.000000 0.000000
  440. X3 12000.000000 75.000000 0.000000
  441. X4 0.000000 75.000000 0.000000
  442. X5 0.000000 -75.000000 0.000000
  443. X6 12000.000000 -75.000000 0.000000
  444. X7 12000.000000 -70.000000 0.000000
  445. X8 0.000000 -70.000000 0.000000
  446. X9 0.000000 75.000000 0.000000
  447. X10 12000.000000 75.000000 0.000000
  448. X11 12000.000000 70.000000 0.000000
  449. X12 0.000000 70.000000 0.000000
  450. X13 1000.000000 -66.000000 0.000000
  451. X14 1125.000000 -66.000000 0.000000
  452. X15 1125.000000 -36.000000 0.000000
  453. X16 1000.000000 -36.000000 0.000000
  454. X17 1000.000000 66.000000 0.000000
  455. X18 1125.000000 66.000000 0.000000
  456. X19 1125.000000 36.000000 0.000000
  457. X20 1000.000000 36.000000 0.000000
  458. X21 11000.000000 -66.000000 0.000000
  459. X22 10875.000000 -66.000000 0.000000
  460. X23 10875.000000 -36.000000 0.000000
  461. X24 11000.000000 -36.000000 0.000000
  462. X25 11000.000000 66.000000 0.000000
  463. X26 10875.000000 66.000000 0.000000
  464. X27 10875.000000 36.000000 0.000000
  465. X28 11000.000000 36.000000 0.000000
  466. X29 4.000000 -66.000000 0.000000
  467. X30 129.000000 -66.000000 0.000000
  468. X31 129.000000 -54.888889 0.000000
  469. X32 4.000000 -54.888889 0.000000
  470. X33 4.000000 -50.888889 0.000000
  471. X34 129.000000 -50.888889 0.000000
  472. X35 129.000000 -39.777779 0.000000
  473. X36 4.000000 -39.777779 0.000000
  474. X37 4.000000 -35.777779 0.000000
  475. X38 129.000000 -35.777779 0.000000
  476. X39 129.000000 -24.666666 0.000000
  477. X40 4.000000 -24.666666 0.000000
  478. X41 4.000000 -20.666666 0.000000
  479. X42 129.000000 -20.666666 0.000000
  480. X43 129.000000 -9.555555 0.000000
  481. X44 4.000000 -9.555555 0.000000
  482. X45 4.000000 9.555555 0.000000
  483. X46 129.000000 9.555555 0.000000
  484. X47 129.000000 20.666666 0.000000
  485. X48 4.000000 20.666666 0.000000
  486. X49 4.000000 24.666666 0.000000
  487. X50 129.000000 24.666666 0.000000
  488. X51 129.000000 35.777779 0.000000
  489. X52 4.000000 35.777779 0.000000
  490. X53 4.000000 39.777779 0.000000
  491. X54 129.000000 39.777779 0.000000
  492. X55 129.000000 50.888889 0.000000
  493. X56 4.000000 50.888889 0.000000
  494. X57 4.000000 54.888889 0.000000
  495. X58 129.000000 54.888889 0.000000
  496. X59 129.000000 66.000000 0.000000
  497. X60 4.000000 66.000000 0.000000
  498. X61 11996.000000 -66.000000 0.000000
  499. X62 11871.000000 -66.000000 0.000000
  500. X63 11871.000000 -54.888889 0.000000
  501. X64 11996.000000 -54.888889 0.000000
  502. X65 11996.000000 -50.888889 0.000000
  503. X66 11871.000000 -50.888889 0.000000
  504. X67 11871.000000 -39.777779 0.000000
  505. X68 11996.000000 -39.777779 0.000000
  506. X69 11996.000000 -35.777779 0.000000
  507. X70 11871.000000 -35.777779 0.000000
  508. X71 11871.000000 -24.666666 0.000000
  509. X72 11996.000000 -24.666666 0.000000
  510. X73 11996.000000 -20.666666 0.000000
  511. X74 11871.000000 -20.666666 0.000000
  512. X75 11871.000000 -9.555555 0.000000
  513. X76 11996.000000 -9.555555 0.000000
  514. X77 11996.000000 9.555555 0.000000
  515. X78 11871.000000 9.555555 0.000000
  516. X79 11871.000000 20.666666 0.000000
  517. X80 11996.000000 20.666666 0.000000
  518. X81 11996.000000 24.666666 0.000000
  519. X82 11871.000000 24.666666 0.000000
  520. X83 11871.000000 35.777779 0.000000
  521. X84 11996.000000 35.777779 0.000000
  522. X85 11996.000000 39.777779 0.000000
  523. X86 11871.000000 39.777779 0.000000
  524. X87 11871.000000 50.888889 0.000000
  525. X88 11996.000000 50.888889 0.000000
  526. X89 11996.000000 54.888889 0.000000
  527. X90 11871.000000 54.888889 0.000000
  528. X91 11871.000000 66.000000 0.000000
  529. X92 11996.000000 66.000000 0.000000
  530. X93 258.000000 -2.500000 0.000000
  531. X94 383.000000 -2.500000 0.000000
  532. X95 383.000000 2.500000 0.000000
  533. X96 258.000000 2.500000 0.000000
  534. X97 508.000000 -2.500000 0.000000
  535. X98 633.000000 -2.500000 0.000000
  536. X99 633.000000 2.500000 0.000000
  537. X100 508.000000 2.500000 0.000000
  538. X101 758.000000 -2.500000 0.000000
  539. X102 883.000000 -2.500000 0.000000
  540. X103 883.000000 2.500000 0.000000
  541. X104 758.000000 2.500000 0.000000
  542. X105 1008.000000 -2.500000 0.000000
  543. X106 1133.000000 -2.500000 0.000000
  544. X107 1133.000000 2.500000 0.000000
  545. X108 1008.000000 2.500000 0.000000
  546. X109 1258.000000 -2.500000 0.000000
  547. X110 1383.000000 -2.500000 0.000000
  548. X111 1383.000000 2.500000 0.000000
  549. X112 1258.000000 2.500000 0.000000
  550. X113 1508.000000 -2.500000 0.000000
  551. X114 1633.000000 -2.500000 0.000000
  552. X115 1633.000000 2.500000 0.000000
  553. X116 1508.000000 2.500000 0.000000
  554. X117 1758.000000 -2.500000 0.000000
  555. X118 1883.000000 -2.500000 0.000000
  556. X119 1883.000000 2.500000 0.000000
  557. X120 1758.000000 2.500000 0.000000
  558. X121 2008.000000 -2.500000 0.000000
  559. X122 2133.000000 -2.500000 0.000000
  560. X123 2133.000000 2.500000 0.000000
  561. X124 2008.000000 2.500000 0.000000
  562. X125 2258.000000 -2.500000 0.000000
  563. X126 2383.000000 -2.500000 0.000000
  564. X127 2383.000000 2.500000 0.000000
  565. X128 2258.000000 2.500000 0.000000
  566. X129 2508.000000 -2.500000 0.000000
  567. X130 2633.000000 -2.500000 0.000000
  568. X131 2633.000000 2.500000 0.000000
  569. X132 2508.000000 2.500000 0.000000
  570. X133 2758.000000 -2.500000 0.000000
  571. X134 2883.000000 -2.500000 0.000000
  572. X135 2883.000000 2.500000 0.000000
  573. X136 2758.000000 2.500000 0.000000
  574. X137 3008.000000 -2.500000 0.000000
  575. X138 3133.000000 -2.500000 0.000000
  576. X139 3133.000000 2.500000 0.000000
  577. X140 3008.000000 2.500000 0.000000
  578. X141 3258.000000 -2.500000 0.000000
  579. X142 3383.000000 -2.500000 0.000000
  580. X143 3383.000000 2.500000 0.000000
  581. X144 3258.000000 2.500000 0.000000
  582. X145 3508.000000 -2.500000 0.000000
  583. X146 3633.000000 -2.500000 0.000000
  584. X147 3633.000000 2.500000 0.000000
  585. X148 3508.000000 2.500000 0.000000
  586. X149 3758.000000 -2.500000 0.000000
  587. X150 3883.000000 -2.500000 0.000000
  588. X151 3883.000000 2.500000 0.000000
  589. X152 3758.000000 2.500000 0.000000
  590. X153 4008.000000 -2.500000 0.000000
  591. X154 4133.000000 -2.500000 0.000000
  592. X155 4133.000000 2.500000 0.000000
  593. X156 4008.000000 2.500000 0.000000
  594. X157 4258.000000 -2.500000 0.000000
  595. X158 4383.000000 -2.500000 0.000000
  596. X159 4383.000000 2.500000 0.000000
  597. X160 4258.000000 2.500000 0.000000
  598. X161 4508.000000 -2.500000 0.000000
  599. X162 4633.000000 -2.500000 0.000000
  600. X163 4633.000000 2.500000 0.000000
  601. X164 4508.000000 2.500000 0.000000
  602. X165 4758.000000 -2.500000 0.000000
  603. X166 4883.000000 -2.500000 0.000000
  604. X167 4883.000000 2.500000 0.000000
  605. X168 4758.000000 2.500000 0.000000
  606. X169 5008.000000 -2.500000 0.000000
  607. X170 5133.000000 -2.500000 0.000000
  608. X171 5133.000000 2.500000 0.000000
  609. X172 5008.000000 2.500000 0.000000
  610. X173 5258.000000 -2.500000 0.000000
  611. X174 5383.000000 -2.500000 0.000000
  612. X175 5383.000000 2.500000 0.000000
  613. X176 5258.000000 2.500000 0.000000
  614. X177 5508.000000 -2.500000 0.000000
  615. X178 5633.000000 -2.500000 0.000000
  616. X179 5633.000000 2.500000 0.000000
  617. X180 5508.000000 2.500000 0.000000
  618. X181 5758.000000 -2.500000 0.000000
  619. X182 5883.000000 -2.500000 0.000000
  620. X183 5883.000000 2.500000 0.000000
  621. X184 5758.000000 2.500000 0.000000
  622. X185 6008.000000 -2.500000 0.000000
  623. X186 6133.000000 -2.500000 0.000000
  624. X187 6133.000000 2.500000 0.000000
  625. X188 6008.000000 2.500000 0.000000
  626. X189 6258.000000 -2.500000 0.000000
  627. X190 6383.000000 -2.500000 0.000000
  628. X191 6383.000000 2.500000 0.000000
  629. X192 6258.000000 2.500000 0.000000
  630. X193 6508.000000 -2.500000 0.000000
  631. X194 6633.000000 -2.500000 0.000000
  632. X195 6633.000000 2.500000 0.000000
  633. X196 6508.000000 2.500000 0.000000
  634. X197 6758.000000 -2.500000 0.000000
  635. X198 6883.000000 -2.500000 0.000000
  636. X199 6883.000000 2.500000 0.000000
  637. X200 6758.000000 2.500000 0.000000
  638. X201 7008.000000 -2.500000 0.000000
  639. X202 7133.000000 -2.500000 0.000000
  640. X203 7133.000000 2.500000 0.000000
  641. X204 7008.000000 2.500000 0.000000
  642. X205 7258.000000 -2.500000 0.000000
  643. X206 7383.000000 -2.500000 0.000000
  644. X207 7383.000000 2.500000 0.000000
  645. X208 7258.000000 2.500000 0.000000
  646. X209 7508.000000 -2.500000 0.000000
  647. X210 7633.000000 -2.500000 0.000000
  648. X211 7633.000000 2.500000 0.000000
  649. X212 7508.000000 2.500000 0.000000
  650. X213 7758.000000 -2.500000 0.000000
  651. X214 7883.000000 -2.500000 0.000000
  652. X215 7883.000000 2.500000 0.000000
  653. X216 7758.000000 2.500000 0.000000
  654. X217 8008.000000 -2.500000 0.000000
  655. X218 8133.000000 -2.500000 0.000000
  656. X219 8133.000000 2.500000 0.000000
  657. X220 8008.000000 2.500000 0.000000
  658. X221 8258.000000 -2.500000 0.000000
  659. X222 8383.000000 -2.500000 0.000000
  660. X223 8383.000000 2.500000 0.000000
  661. X224 8258.000000 2.500000 0.000000
  662. X225 8508.000000 -2.500000 0.000000
  663. X226 8633.000000 -2.500000 0.000000
  664. X227 8633.000000 2.500000 0.000000
  665. X228 8508.000000 2.500000 0.000000
  666. X229 8758.000000 -2.500000 0.000000
  667. X230 8883.000000 -2.500000 0.000000
  668. X231 8883.000000 2.500000 0.000000
  669. X232 8758.000000 2.500000 0.000000
  670. X233 9008.000000 -2.500000 0.000000
  671. X234 9133.000000 -2.500000 0.000000
  672. X235 9133.000000 2.500000 0.000000
  673. X236 9008.000000 2.500000 0.000000
  674. X237 9258.000000 -2.500000 0.000000
  675. X238 9383.000000 -2.500000 0.000000
  676. X239 9383.000000 2.500000 0.000000
  677. X240 9258.000000 2.500000 0.000000
  678. X241 9508.000000 -2.500000 0.000000
  679. X242 9633.000000 -2.500000 0.000000
  680. X243 9633.000000 2.500000 0.000000
  681. X244 9508.000000 2.500000 0.000000
  682. X245 9758.000000 -2.500000 0.000000
  683. X246 9883.000000 -2.500000 0.000000
  684. X247 9883.000000 2.500000 0.000000
  685. X248 9758.000000 2.500000 0.000000
  686. X249 10008.000000 -2.500000 0.000000
  687. X250 10133.000000 -2.500000 0.000000
  688. X251 10133.000000 2.500000 0.000000
  689. X252 10008.000000 2.500000 0.000000
  690. X253 10258.000000 -2.500000 0.000000
  691. X254 10383.000000 -2.500000 0.000000
  692. X255 10383.000000 2.500000 0.000000
  693. X256 10258.000000 2.500000 0.000000
  694. X257 10508.000000 -2.500000 0.000000
  695. X258 10633.000000 -2.500000 0.000000
  696. X259 10633.000000 2.500000 0.000000
  697. X260 10508.000000 2.500000 0.000000
  698. X261 10758.000000 -2.500000 0.000000
  699. X262 10883.000000 -2.500000 0.000000
  700. X263 10883.000000 2.500000 0.000000
  701. X264 10758.000000 2.500000 0.000000
  702. X265 11008.000000 -2.500000 0.000000
  703. X266 11133.000000 -2.500000 0.000000
  704. X267 11133.000000 2.500000 0.000000
  705. X268 11008.000000 2.500000 0.000000
  706. X269 11258.000000 -2.500000 0.000000
  707. X270 11383.000000 -2.500000 0.000000
  708. X271 11383.000000 2.500000 0.000000
  709. X272 11258.000000 2.500000 0.000000
  710. X273 11508.000000 -2.500000 0.000000
  711. X274 11633.000000 -2.500000 0.000000
  712. X275 11633.000000 2.500000 0.000000
  713. X276 11508.000000 2.500000 0.000000
  714. X277 11758.000000 -2.500000 0.000000
  715. X278 11883.000000 -2.500000 0.000000
  716. X279 11883.000000 2.500000 0.000000
  717. X280 11758.000000 2.500000 0.000000
  718. Xblack 4  1 2 3 4
  719. Xwhite 4  5 6 7 8
  720. Xwhite 4  9 10 11 12
  721. Xwhite 4  13 14 15 16
  722. Xwhite 4  17 18 19 20
  723. Xwhite 4  21 22 23 24
  724. Xwhite 4  25 26 27 28
  725. Xwhite 4  29 30 31 32
  726. Xwhite 4  33 34 35 36
  727. Xwhite 4  37 38 39 40
  728. Xwhite 4  41 42 43 44
  729. Xwhite 4  45 46 47 48
  730. Xwhite 4  49 50 51 52
  731. Xwhite 4  53 54 55 56
  732. Xwhite 4  57 58 59 60
  733. Xwhite 4  61 62 63 64
  734. Xwhite 4  65 66 67 68
  735. Xwhite 4  69 70 71 72
  736. Xwhite 4  73 74 75 76
  737. Xwhite 4  77 78 79 80
  738. Xwhite 4  81 82 83 84
  739. Xwhite 4  85 86 87 88
  740. Xwhite 4  89 90 91 92
  741. Xwhite 4  93 94 95 96
  742. Xwhite 4  97 98 99 100
  743. Xwhite 4  101 102 103 104
  744. Xwhite 4  105 106 107 108
  745. Xwhite 4  109 110 111 112
  746. Xwhite 4  113 114 115 116
  747. Xwhite 4  117 118 119 120
  748. Xwhite 4  121 122 123 124
  749. Xwhite 4  125 126 127 128
  750. Xwhite 4  129 130 131 132
  751. Xwhite 4  133 134 135 136
  752. Xwhite 4  137 138 139 140
  753. Xwhite 4  141 142 143 144
  754. Xwhite 4  145 146 147 148
  755. Xwhite 4  149 150 151 152
  756. Xwhite 4  153 154 155 156
  757. Xwhite 4  157 158 159 160
  758. Xwhite 4  161 162 163 164
  759. Xwhite 4  165 166 167 168
  760. Xwhite 4  169 170 171 172
  761. Xwhite 4  173 174 175 176
  762. Xwhite 4  177 178 179 180
  763. Xwhite 4  181 182 183 184
  764. Xwhite 4  185 186 187 188
  765. Xwhite 4  189 190 191 192
  766. Xwhite 4  193 194 195 196
  767. Xwhite 4  197 198 199 200
  768. Xwhite 4  201 202 203 204
  769. Xwhite 4  205 206 207 208
  770. Xwhite 4  209 210 211 212
  771. Xwhite 4  213 214 215 216
  772. Xwhite 4  217 218 219 220
  773. Xwhite 4  221 222 223 224
  774. Xwhite 4  225 226 227 228
  775. Xwhite 4  229 230 231 232
  776. Xwhite 4  233 234 235 236
  777. Xwhite 4  237 238 239 240
  778. Xwhite 4  241 242 243 244
  779. Xwhite 4  245 246 247 248
  780. Xwhite 4  249 250 251 252
  781. Xwhite 4  253 254 255 256
  782. Xwhite 4  257 258 259 260
  783. Xwhite 4  261 262 263 264
  784. Xwhite 4  265 266 267 268
  785. Xwhite 4  269 270 271 272
  786. Xwhite 4  273 274 275 276
  787. Xwhite 4  277 278 279 280
  788. END_OF_FILE
  789. if test 11276 -ne `wc -c <'acm/V/test/fullrwy'`; then
  790.     echo shar: \"'acm/V/test/fullrwy'\" unpacked with wrong size!
  791. fi
  792. # end of 'acm/V/test/fullrwy'
  793. fi
  794. if test -f 'acm/V/test/rwy' -a "${1}" != "-c" ; then 
  795.   echo shar: Will not clobber existing file \"'acm/V/test/rwy'\"
  796. else
  797. echo shar: Extracting \"'acm/V/test/rwy'\" \(11259 characters\)
  798. sed "s/^X//" >'acm/V/test/rwy' <<'END_OF_FILE'
  799. XRunway
  800. X280 69
  801. X1 0.000000 -75.000000 0.000000
  802. X2 12000.000000 -75.000000 0.000000
  803. X3 12000.000000 75.000000 0.000000
  804. X4 0.000000 75.000000 0.000000
  805. X5 0.000000 -75.000000 0.000000
  806. X6 12000.000000 -75.000000 0.000000
  807. X7 12000.000000 -70.000000 0.000000
  808. X8 0.000000 -70.000000 0.000000
  809. X9 0.000000 75.000000 0.000000
  810. X10 12000.000000 75.000000 0.000000
  811. X11 12000.000000 70.000000 0.000000
  812. X12 0.000000 70.000000 0.000000
  813. X13 1000.000000 -66.000000 0.000000
  814. X14 1125.000000 -66.000000 0.000000
  815. X15 1125.000000 -36.000000 0.000000
  816. X16 1000.000000 -36.000000 0.000000
  817. X17 1000.000000 66.000000 0.000000
  818. X18 1125.000000 66.000000 0.000000
  819. X19 1125.000000 36.000000 0.000000
  820. X20 1000.000000 36.000000 0.000000
  821. X21 11000.000000 -66.000000 0.000000
  822. X22 10875.000000 -66.000000 0.000000
  823. X23 10875.000000 -36.000000 0.000000
  824. X24 11000.000000 -36.000000 0.000000
  825. X25 11000.000000 66.000000 0.000000
  826. X26 10875.000000 66.000000 0.000000
  827. X27 10875.000000 36.000000 0.000000
  828. X28 11000.000000 36.000000 0.000000
  829. X29 4.000000 -66.000000 0.000000
  830. X30 129.000000 -66.000000 0.000000
  831. X31 129.000000 -54.888889 0.000000
  832. X32 4.000000 -54.888889 0.000000
  833. X33 4.000000 -50.888889 0.000000
  834. X34 129.000000 -50.888889 0.000000
  835. X35 129.000000 -39.777779 0.000000
  836. X36 4.000000 -39.777779 0.000000
  837. X37 4.000000 -35.777779 0.000000
  838. X38 129.000000 -35.777779 0.000000
  839. X39 129.000000 -24.666666 0.000000
  840. X40 4.000000 -24.666666 0.000000
  841. X41 4.000000 -20.666666 0.000000
  842. X42 129.000000 -20.666666 0.000000
  843. X43 129.000000 -9.555555 0.000000
  844. X44 4.000000 -9.555555 0.000000
  845. X45 4.000000 9.555555 0.000000
  846. X46 129.000000 9.555555 0.000000
  847. X47 129.000000 20.666666 0.000000
  848. X48 4.000000 20.666666 0.000000
  849. X49 4.000000 24.666666 0.000000
  850. X50 129.000000 24.666666 0.000000
  851. X51 129.000000 35.777779 0.000000
  852. X52 4.000000 35.777779 0.000000
  853. X53 4.000000 39.777779 0.000000
  854. X54 129.000000 39.777779 0.000000
  855. X55 129.000000 50.888889 0.000000
  856. X56 4.000000 50.888889 0.000000
  857. X57 4.000000 54.888889 0.000000
  858. X58 129.000000 54.888889 0.000000
  859. X59 129.000000 66.000000 0.000000
  860. X60 4.000000 66.000000 0.000000
  861. X61 11996.000000 -66.000000 0.000000
  862. X62 11871.000000 -66.000000 0.000000
  863. X63 11871.000000 -54.888889 0.000000
  864. X64 11996.000000 -54.888889 0.000000
  865. X65 11996.000000 -50.888889 0.000000
  866. X66 11871.000000 -50.888889 0.000000
  867. X67 11871.000000 -39.777779 0.000000
  868. X68 11996.000000 -39.777779 0.000000
  869. X69 11996.000000 -35.777779 0.000000
  870. X70 11871.000000 -35.777779 0.000000
  871. X71 11871.000000 -24.666666 0.000000
  872. X72 11996.000000 -24.666666 0.000000
  873. X73 11996.000000 -20.666666 0.000000
  874. X74 11871.000000 -20.666666 0.000000
  875. X75 11871.000000 -9.555555 0.000000
  876. X76 11996.000000 -9.555555 0.000000
  877. X77 11996.000000 9.555555 0.000000
  878. X78 11871.000000 9.555555 0.000000
  879. X79 11871.000000 20.666666 0.000000
  880. X80 11996.000000 20.666666 0.000000
  881. X81 11996.000000 24.666666 0.000000
  882. X82 11871.000000 24.666666 0.000000
  883. X83 11871.000000 35.777779 0.000000
  884. X84 11996.000000 35.777779 0.000000
  885. X85 11996.000000 39.777779 0.000000
  886. X86 11871.000000 39.777779 0.000000
  887. X87 11871.000000 50.888889 0.000000
  888. X88 11996.000000 50.888889 0.000000
  889. X89 11996.000000 54.888889 0.000000
  890. X90 11871.000000 54.888889 0.000000
  891. X91 11871.000000 66.000000 0.000000
  892. X92 11996.000000 66.000000 0.000000
  893. X93 258.000000 -2.500000 0.000000
  894. X94 383.000000 -2.500000 0.000000
  895. X95 383.000000 2.500000 0.000000
  896. X96 258.000000 2.500000 0.000000
  897. X97 508.000000 -2.500000 0.000000
  898. X98 633.000000 -2.500000 0.000000
  899. X99 633.000000 2.500000 0.000000
  900. X100 508.000000 2.500000 0.000000
  901. X101 758.000000 -2.500000 0.000000
  902. X102 883.000000 -2.500000 0.000000
  903. X103 883.000000 2.500000 0.000000
  904. X104 758.000000 2.500000 0.000000
  905. X105 1008.000000 -2.500000 0.000000
  906. X106 1133.000000 -2.500000 0.000000
  907. X107 1133.000000 2.500000 0.000000
  908. X108 1008.000000 2.500000 0.000000
  909. X109 1258.000000 -2.500000 0.000000
  910. X110 1383.000000 -2.500000 0.000000
  911. X111 1383.000000 2.500000 0.000000
  912. X112 1258.000000 2.500000 0.000000
  913. X113 1508.000000 -2.500000 0.000000
  914. X114 1633.000000 -2.500000 0.000000
  915. X115 1633.000000 2.500000 0.000000
  916. X116 1508.000000 2.500000 0.000000
  917. X117 1758.000000 -2.500000 0.000000
  918. X118 1883.000000 -2.500000 0.000000
  919. X119 1883.000000 2.500000 0.000000
  920. X120 1758.000000 2.500000 0.000000
  921. X121 2008.000000 -2.500000 0.000000
  922. X122 2133.000000 -2.500000 0.000000
  923. X123 2133.000000 2.500000 0.000000
  924. X124 2008.000000 2.500000 0.000000
  925. X125 2258.000000 -2.500000 0.000000
  926. X126 2383.000000 -2.500000 0.000000
  927. X127 2383.000000 2.500000 0.000000
  928. X128 2258.000000 2.500000 0.000000
  929. X129 2508.000000 -2.500000 0.000000
  930. X130 2633.000000 -2.500000 0.000000
  931. X131 2633.000000 2.500000 0.000000
  932. X132 2508.000000 2.500000 0.000000
  933. X133 2758.000000 -2.500000 0.000000
  934. X134 2883.000000 -2.500000 0.000000
  935. X135 2883.000000 2.500000 0.000000
  936. X136 2758.000000 2.500000 0.000000
  937. X137 3008.000000 -2.500000 0.000000
  938. X138 3133.000000 -2.500000 0.000000
  939. X139 3133.000000 2.500000 0.000000
  940. X140 3008.000000 2.500000 0.000000
  941. X141 3258.000000 -2.500000 0.000000
  942. X142 3383.000000 -2.500000 0.000000
  943. X143 3383.000000 2.500000 0.000000
  944. X144 3258.000000 2.500000 0.000000
  945. X145 3508.000000 -2.500000 0.000000
  946. X146 3633.000000 -2.500000 0.000000
  947. X147 3633.000000 2.500000 0.000000
  948. X148 3508.000000 2.500000 0.000000
  949. X149 3758.000000 -2.500000 0.000000
  950. X150 3883.000000 -2.500000 0.000000
  951. X151 3883.000000 2.500000 0.000000
  952. X152 3758.000000 2.500000 0.000000
  953. X153 4008.000000 -2.500000 0.000000
  954. X154 4133.000000 -2.500000 0.000000
  955. X155 4133.000000 2.500000 0.000000
  956. X156 4008.000000 2.500000 0.000000
  957. X157 4258.000000 -2.500000 0.000000
  958. X158 4383.000000 -2.500000 0.000000
  959. X159 4383.000000 2.500000 0.000000
  960. X160 4258.000000 2.500000 0.000000
  961. X161 4508.000000 -2.500000 0.000000
  962. X162 4633.000000 -2.500000 0.000000
  963. X163 4633.000000 2.500000 0.000000
  964. X164 4508.000000 2.500000 0.000000
  965. X165 4758.000000 -2.500000 0.000000
  966. X166 4883.000000 -2.500000 0.000000
  967. X167 4883.000000 2.500000 0.000000
  968. X168 4758.000000 2.500000 0.000000
  969. X169 5008.000000 -2.500000 0.000000
  970. X170 5133.000000 -2.500000 0.000000
  971. X171 5133.000000 2.500000 0.000000
  972. X172 5008.000000 2.500000 0.000000
  973. X173 5258.000000 -2.500000 0.000000
  974. X174 5383.000000 -2.500000 0.000000
  975. X175 5383.000000 2.500000 0.000000
  976. X176 5258.000000 2.500000 0.000000
  977. X177 5508.000000 -2.500000 0.000000
  978. X178 5633.000000 -2.500000 0.000000
  979. X179 5633.000000 2.500000 0.000000
  980. X180 5508.000000 2.500000 0.000000
  981. X181 5758.000000 -2.500000 0.000000
  982. X182 5883.000000 -2.500000 0.000000
  983. X183 5883.000000 2.500000 0.000000
  984. X184 5758.000000 2.500000 0.000000
  985. X185 6008.000000 -2.500000 0.000000
  986. X186 6133.000000 -2.500000 0.000000
  987. X187 6133.000000 2.500000 0.000000
  988. X188 6008.000000 2.500000 0.000000
  989. X189 6258.000000 -2.500000 0.000000
  990. X190 6383.000000 -2.500000 0.000000
  991. X191 6383.000000 2.500000 0.000000
  992. X192 6258.000000 2.500000 0.000000
  993. X193 6508.000000 -2.500000 0.000000
  994. X194 6633.000000 -2.500000 0.000000
  995. X195 6633.000000 2.500000 0.000000
  996. X196 6508.000000 2.500000 0.000000
  997. X197 6758.000000 -2.500000 0.000000
  998. X198 6883.000000 -2.500000 0.000000
  999. X199 6883.000000 2.500000 0.000000
  1000. X200 6758.000000 2.500000 0.000000
  1001. X201 7008.000000 -2.500000 0.000000
  1002. X202 7133.000000 -2.500000 0.000000
  1003. X203 7133.000000 2.500000 0.000000
  1004. X204 7008.000000 2.500000 0.000000
  1005. X205 7258.000000 -2.500000 0.000000
  1006. X206 7383.000000 -2.500000 0.000000
  1007. X207 7383.000000 2.500000 0.000000
  1008. X208 7258.000000 2.500000 0.000000
  1009. X209 7508.000000 -2.500000 0.000000
  1010. X210 7633.000000 -2.500000 0.000000
  1011. X211 7633.000000 2.500000 0.000000
  1012. X212 7508.000000 2.500000 0.000000
  1013. X213 7758.000000 -2.500000 0.000000
  1014. X214 7883.000000 -2.500000 0.000000
  1015. X215 7883.000000 2.500000 0.000000
  1016. X216 7758.000000 2.500000 0.000000
  1017. X217 8008.000000 -2.500000 0.000000
  1018. X218 8133.000000 -2.500000 0.000000
  1019. X219 8133.000000 2.500000 0.000000
  1020. X220 8008.000000 2.500000 0.000000
  1021. X221 8258.000000 -2.500000 0.000000
  1022. X222 8383.000000 -2.500000 0.000000
  1023. X223 8383.000000 2.500000 0.000000
  1024. X224 8258.000000 2.500000 0.000000
  1025. X225 8508.000000 -2.500000 0.000000
  1026. X226 8633.000000 -2.500000 0.000000
  1027. X227 8633.000000 2.500000 0.000000
  1028. X228 8508.000000 2.500000 0.000000
  1029. X229 8758.000000 -2.500000 0.000000
  1030. X230 8883.000000 -2.500000 0.000000
  1031. X231 8883.000000 2.500000 0.000000
  1032. X232 8758.000000 2.500000 0.000000
  1033. X233 9008.000000 -2.500000 0.000000
  1034. X234 9133.000000 -2.500000 0.000000
  1035. X235 9133.000000 2.500000 0.000000
  1036. X236 9008.000000 2.500000 0.000000
  1037. X237 9258.000000 -2.500000 0.000000
  1038. X238 9383.000000 -2.500000 0.000000
  1039. X239 9383.000000 2.500000 0.000000
  1040. X240 9258.000000 2.500000 0.000000
  1041. X241 9508.000000 -2.500000 0.000000
  1042. X242 9633.000000 -2.500000 0.000000
  1043. X243 9633.000000 2.500000 0.000000
  1044. X244 9508.000000 2.500000 0.000000
  1045. X245 9758.000000 -2.500000 0.000000
  1046. X246 9883.000000 -2.500000 0.000000
  1047. X247 9883.000000 2.500000 0.000000
  1048. X248 9758.000000 2.500000 0.000000
  1049. X249 10008.000000 -2.500000 0.000000
  1050. X250 10133.000000 -2.500000 0.000000
  1051. X251 10133.000000 2.500000 0.000000
  1052. X252 10008.000000 2.500000 0.000000
  1053. X253 10258.000000 -2.500000 0.000000
  1054. X254 10383.000000 -2.500000 0.000000
  1055. X255 10383.000000 2.500000 0.000000
  1056. X256 10258.000000 2.500000 0.000000
  1057. X257 10508.000000 -2.500000 0.000000
  1058. X258 10633.000000 -2.500000 0.000000
  1059. X259 10633.000000 2.500000 0.000000
  1060. X260 10508.000000 2.500000 0.000000
  1061. X261 10758.000000 -2.500000 0.000000
  1062. X262 10883.000000 -2.500000 0.000000
  1063. X263 10883.000000 2.500000 0.000000
  1064. X264 10758.000000 2.500000 0.000000
  1065. X265 11008.000000 -2.500000 0.000000
  1066. X266 11133.000000 -2.500000 0.000000
  1067. X267 11133.000000 2.500000 0.000000
  1068. X268 11008.000000 2.500000 0.000000
  1069. X269 11258.000000 -2.500000 0.000000
  1070. X270 11383.000000 -2.500000 0.000000
  1071. X271 11383.000000 2.500000 0.000000
  1072. X272 11258.000000 2.500000 0.000000
  1073. X273 11508.000000 -2.500000 0.000000
  1074. X274 11633.000000 -2.500000 0.000000
  1075. X275 11633.000000 2.500000 0.000000
  1076. X276 11508.000000 2.500000 0.000000
  1077. X277 11758.000000 -2.500000 0.000000
  1078. X278 11883.000000 -2.500000 0.000000
  1079. X279 11883.000000 2.500000 0.000000
  1080. X280 11758.000000 2.500000 0.000000
  1081. Xwhite 4  5 6 7 8
  1082. Xwhite 4  9 10 11 12
  1083. Xwhite 4  13 14 15 16
  1084. Xwhite 4  17 18 19 20
  1085. Xwhite 4  21 22 23 24
  1086. Xwhite 4  25 26 27 28
  1087. Xwhite 4  29 30 31 32
  1088. Xwhite 4  33 34 35 36
  1089. Xwhite 4  37 38 39 40
  1090. Xwhite 4  41 42 43 44
  1091. Xwhite 4  45 46 47 48
  1092. Xwhite 4  49 50 51 52
  1093. Xwhite 4  53 54 55 56
  1094. Xwhite 4  57 58 59 60
  1095. Xwhite 4  61 62 63 64
  1096. Xwhite 4  65 66 67 68
  1097. Xwhite 4  69 70 71 72
  1098. Xwhite 4  73 74 75 76
  1099. Xwhite 4  77 78 79 80
  1100. Xwhite 4  81 82 83 84
  1101. Xwhite 4  85 86 87 88
  1102. Xwhite 4  89 90 91 92
  1103. Xwhite 4  93 94 95 96
  1104. Xwhite 4  97 98 99 100
  1105. Xwhite 4  101 102 103 104
  1106. Xwhite 4  105 106 107 108
  1107. Xwhite 4  109 110 111 112
  1108. Xwhite 4  113 114 115 116
  1109. Xwhite 4  117 118 119 120
  1110. Xwhite 4  121 122 123 124
  1111. Xwhite 4  125 126 127 128
  1112. Xwhite 4  129 130 131 132
  1113. Xwhite 4  133 134 135 136
  1114. Xwhite 4  137 138 139 140
  1115. Xwhite 4  141 142 143 144
  1116. Xwhite 4  145 146 147 148
  1117. Xwhite 4  149 150 151 152
  1118. Xwhite 4  153 154 155 156
  1119. Xwhite 4  157 158 159 160
  1120. Xwhite 4  161 162 163 164
  1121. Xwhite 4  165 166 167 168
  1122. Xwhite 4  169 170 171 172
  1123. Xwhite 4  173 174 175 176
  1124. Xwhite 4  177 178 179 180
  1125. Xwhite 4  181 182 183 184
  1126. Xwhite 4  185 186 187 188
  1127. Xwhite 4  189 190 191 192
  1128. Xwhite 4  193 194 195 196
  1129. Xwhite 4  197 198 199 200
  1130. Xwhite 4  201 202 203 204
  1131. Xwhite 4  205 206 207 208
  1132. Xwhite 4  209 210 211 212
  1133. Xwhite 4  213 214 215 216
  1134. Xwhite 4  217 218 219 220
  1135. Xwhite 4  221 222 223 224
  1136. Xwhite 4  225 226 227 228
  1137. Xwhite 4  229 230 231 232
  1138. Xwhite 4  233 234 235 236
  1139. Xwhite 4  237 238 239 240
  1140. Xwhite 4  241 242 243 244
  1141. Xwhite 4  245 246 247 248
  1142. Xwhite 4  249 250 251 252
  1143. Xwhite 4  253 254 255 256
  1144. Xwhite 4  257 258 259 260
  1145. Xwhite 4  261 262 263 264
  1146. Xwhite 4  265 266 267 268
  1147. Xwhite 4  269 270 271 272
  1148. Xwhite 4  273 274 275 276
  1149. Xwhite 4  277 278 279 280
  1150. END_OF_FILE
  1151. if test 11259 -ne `wc -c <'acm/V/test/rwy'`; then
  1152.     echo shar: \"'acm/V/test/rwy'\" unpacked with wrong size!
  1153. fi
  1154. # end of 'acm/V/test/rwy'
  1155. fi
  1156. if test -f 'acm/fsim/missile.c' -a "${1}" != "-c" ; then 
  1157.   echo shar: Will not clobber existing file \"'acm/fsim/missile.c'\"
  1158. else
  1159. echo shar: Extracting \"'acm/fsim/missile.c'\" \(10544 characters\)
  1160. sed "s/^X//" >'acm/fsim/missile.c' <<'END_OF_FILE'
  1161. X/*
  1162. X *    xflight : an aerial combat simulator for X
  1163. X *
  1164. X *    Written by Riley Rainey,  riley@mips.com
  1165. X *
  1166. X *    Permission to use, copy, modify and distribute (without charge) this
  1167. X *    software, documentation, images, etc. is granted, provided that this 
  1168. X *    comment and the author's name is retained.
  1169. X *
  1170. X */
  1171. X#include "pm.h"
  1172. X#include <math.h>
  1173. X
  1174. Xtypedef struct _entry {
  1175. X    double    time;
  1176. X    double    min;
  1177. X    craft    *c;
  1178. X    struct    _entry *next;
  1179. X    }    entry;
  1180. X
  1181. X
  1182. Xextern craftType *lookupCraft();
  1183. Xextern int mdebug;
  1184. Xextern void lookForCannonImpacts();
  1185. Xextern void euler();
  1186. X
  1187. Xint    fireMissile (c)
  1188. Xcraft    *c; {
  1189. X
  1190. X    register craft    *m;
  1191. X    register int    i;
  1192. X    VPoint        s;
  1193. X    VPoint        cY, mX, mY, mZ;
  1194. X    double        v;
  1195. X
  1196. X    for ((i=0, m= &mtbl[0]); i<MAXPROJECTILES; (++i, ++m))
  1197. X        if (m->type == CT_FREE) {
  1198. X            m->type = CT_MISSILE;
  1199. X            break;
  1200. X        }
  1201. X
  1202. X    if (i == MAXPROJECTILES)
  1203. X        return -1;
  1204. X
  1205. X    m->cinfo = lookupCraft ("aim-9m");
  1206. X    m->fuel = m->cinfo->maxFuel;
  1207. X    m->curThrust = m->cinfo->maxThrust;
  1208. X
  1209. X/*
  1210. X *  Build trihedral based on the launching aircraft's current velocity vector
  1211. X *  rather than simply it's current direction vector.
  1212. X *
  1213. X *    (1)  build a unit velocity vector.
  1214. X *    (2)  calculate missiles local Z axis from
  1215. X *        plane's-y-axis CROSS missile's-unit-velocity-vector
  1216. X *    (3)  calculate missile's Y axis.
  1217. X */
  1218. X
  1219. X    if ((v = mag (c->Cg)) == 0.0) {
  1220. X        m->trihedral = c->trihedral;
  1221. X        m->Itrihedral = c->Itrihedral;
  1222. X        m->curRoll = c->curRoll;
  1223. X        m->curPitch = c->curPitch;
  1224. X        m->curHeading = c->curHeading;
  1225. X    }
  1226. X    else {
  1227. X        mX = c->Cg;
  1228. X        mX.x /= v;
  1229. X        mX.y /= v;
  1230. X        mX.z /= v;
  1231. X        cY.x = c->trihedral.m[0][1];
  1232. X        cY.y = c->trihedral.m[1][1];
  1233. X        cY.z = c->trihedral.m[2][1];
  1234. X
  1235. X        VCrossProd (&mX, &cY, &mZ);
  1236. X        VCrossProd (&mZ, &mX, &mY);
  1237. X
  1238. X        m->trihedral.m[0][0] = mX.x;
  1239. X        m->trihedral.m[1][0] = mX.y;
  1240. X        m->trihedral.m[2][0] = mX.z;
  1241. X        m->trihedral.m[0][1] = mY.x;
  1242. X        m->trihedral.m[1][1] = mY.y;
  1243. X        m->trihedral.m[2][1] = mY.z;
  1244. X        m->trihedral.m[0][2] = mZ.x;
  1245. X        m->trihedral.m[1][2] = mZ.y;
  1246. X        m->trihedral.m[2][2] = mZ.z;
  1247. X
  1248. X        transpose (&m->trihedral, &m->Itrihedral);
  1249. X        euler (m);
  1250. X    }
  1251. X
  1252. X    m->Cg = c->Cg;
  1253. X    VTransform (&(c->cinfo->wStation[1]), &(c->trihedral), &s);
  1254. X    m->Sg.x = c->Sg.x + s.x;
  1255. X    m->Sg.y = c->Sg.y + s.y;
  1256. X    m->Sg.z = c->Sg.z + s.z;
  1257. X    m->armFuse = (int) (m->cinfo->armDelay / deltaT);
  1258. X    m->flags = FL_HAS_GYRO;
  1259. X    m->createTime = curTime;
  1260. X
  1261. X/*
  1262. X * kludge
  1263. X */
  1264. X
  1265. X    m->curRadarTarget = c->curRadarTarget;
  1266. X
  1267. X    return 0;
  1268. X}
  1269. X
  1270. Xint    killMissile (c)
  1271. Xcraft    *c; {
  1272. X
  1273. X    c->type = CT_FREE;
  1274. X    return 0;
  1275. X}
  1276. X
  1277. Xint    lookForImpacts () {
  1278. X
  1279. X    craft    *c, *m;
  1280. X    entry    p[MAXPLAYERS], *list, *q, *r, *rprev;
  1281. X    VPoint    v, s0;
  1282. X    double    t, d;
  1283. X    int    i, j;
  1284. X
  1285. X    for (m=mtbl, i=0; i<MAXPROJECTILES; ++i, ++m) {
  1286. X
  1287. X        if (m->type == CT_CANNON) {
  1288. X            lookForCannonImpacts (m);
  1289. X            continue;
  1290. X        }
  1291. X        else if (m->type != CT_MISSILE || m->armFuse > 0)
  1292. X            continue;
  1293. X
  1294. X        list = (entry *) NULL;
  1295. X        for (c=ptbl, j=0; j<MAXPLAYERS; ++j, ++c) {
  1296. X
  1297. X            if (c->type == CT_FREE)
  1298. X                continue;
  1299. X
  1300. X/*
  1301. X * Reduce the relative motion of this object to a the parametric system
  1302. X * of equations:
  1303. X *        x(t) = vx * t + s0x
  1304. X *        y(t) = vy * t + s0y
  1305. X *        z(t) = vz * t + s0z
  1306. X *
  1307. X * We can then compute the time of perigee (closest pass) along with
  1308. X * the associated minimum distance.
  1309. X */
  1310. X
  1311. X            v.x = c->Sg.x - c->prevSg.x - m->Sg.x + m->prevSg.x;
  1312. X            v.y = c->Sg.y - c->prevSg.y - m->Sg.y + m->prevSg.y;
  1313. X            v.z = c->Sg.z - c->prevSg.z - m->Sg.z + m->prevSg.z;
  1314. X            s0.x = c->prevSg.x - m->prevSg.x;
  1315. X            s0.y = c->prevSg.y - m->prevSg.y;
  1316. X            s0.z = c->prevSg.z - m->prevSg.z;
  1317. X
  1318. X/*
  1319. X * Compute time of minimum distance between the two objects (note that units
  1320. X * here are UPDATE_INTERVAL seconds).
  1321. X */
  1322. X
  1323. X            t = - (v.x * s0.x + v.y * s0.y + v.z * s0.z) /
  1324. X                (v.x * v.x + v.y * v.y + v.z * v.z);
  1325. X
  1326. X            if (mdebug)
  1327. X            printf ("perigee in %g seconds with player %d\n",
  1328. X                t*deltaT, j);
  1329. X
  1330. X/*
  1331. X *  If the closest pass occurs during this update interval, check for a hit.
  1332. X *  We'll build a linked list of all craft that this projectile may strike
  1333. X *  during this period, arranged in ascending order by time of "perigee"
  1334. X *  (closest pass).  We'll then test for strikes.  If a projectile misses
  1335. X *  the first object, then it may have struck subsequent objects in the
  1336. X *  list ...
  1337. X */
  1338. X
  1339. X/*
  1340. X *  One special case occurs when a target or missile's turn suddenly
  1341. X *  changes the perigee time from positive to negative.  If the missile
  1342. X *  is within hitting range at t=0 and the time of perigee is negative,
  1343. X *  then zap 'em.
  1344. X */
  1345. X
  1346. X            if (t < 0.0) {
  1347. X                d = sqrt (s0.x *s0.x + s0.y * s0.y +
  1348. X                    s0.z * s0.z);
  1349. X                if (isMissileHit (d, c)) {
  1350. X                    t = 0.0;
  1351. X                }
  1352. X            }
  1353. X
  1354. X            if (t >= 0.0 && t <= 1.0) {
  1355. X                q = &p[j];
  1356. X                if (list == (entry *) NULL) {
  1357. X                    q->next = list;
  1358. X                    list = q;
  1359. X                }
  1360. X                else if (list->time > t) {
  1361. X                    q->next = list;
  1362. X                    list = q;
  1363. X                }
  1364. X                else {
  1365. X                    for (rprev=list, r=list->next; r != (entry *) NULL;) {
  1366. X                        if (r->time > t) break;
  1367. X                        rprev = r;
  1368. X                        r = r->next;
  1369. X                    }
  1370. X                    rprev->next = q;
  1371. X                    q->next = r;
  1372. X                }
  1373. X                q->time = t;
  1374. X                q->c = c;
  1375. X                q->min = sqrt (pow(v.x * t + s0.x, 2.0) +
  1376. X                    pow (v.y * t + s0.y, 2.0) +
  1377. X                    pow (v.z * t + s0.z, 2.0) );
  1378. X                    if (mdebug)
  1379. X                    printf ("perigee %g feet; craft %d.\n",
  1380. X                        q->min, j);
  1381. X            }
  1382. X        }
  1383. X
  1384. X/*
  1385. X *  Now look for missile hits in the list of perigees.
  1386. X */
  1387. X
  1388. X        for (r=list; r != (entry *) NULL; r=r->next)
  1389. X            if (isMissileHit (r->min, r->c)) {
  1390. X                killMissile (m);
  1391. X                if (absorbDamage (r->c, 20) == 0)
  1392. X                    killPlayer (r->c);
  1393. X                break;
  1394. X            }
  1395. X    }
  1396. X
  1397. X    return(0);
  1398. X}
  1399. X
  1400. X/*ARGSUSED*/
  1401. Xint isMissileHit (min, c)
  1402. Xdouble min;
  1403. Xcraft    *c; {
  1404. X
  1405. X    return (min < 50.0) ? 1 : 0;
  1406. X}
  1407. X
  1408. X#define IRScanSlope     0.57735
  1409. X
  1410. Xint isIRVisible (c, m, t)
  1411. Xcraft *c;
  1412. XVMatrix *m;
  1413. XVPoint    *t; {
  1414. X
  1415. X    VPoint    relPos;
  1416. X
  1417. X    if (c->type == CT_FREE)
  1418. X        return 0;
  1419. X
  1420. X    VTransform (&(c->Sg), m, t);
  1421. X
  1422. X    if (t->z <= 0.0)
  1423. X        return 0;
  1424. X
  1425. X    relPos.x = t->x / (t->z * IRScanSlope);
  1426. X    relPos.y = t->y / (t->z * IRScanSlope);
  1427. X
  1428. X    return (sqrt(relPos.x*relPos.x + relPos.y*relPos.y) > 1.0) ? 0 : 1;
  1429. X}
  1430. X
  1431. Xint getIRTarget (c, m, t)
  1432. Xcraft *c;
  1433. XVMatrix *m;
  1434. XVPoint  *t; {
  1435. X
  1436. X    int    i, n;
  1437. X    craft    *p;
  1438. X    VPoint    tNew, tMin;
  1439. X    double    m1, min;
  1440. X
  1441. X    if (c->curRadarTarget != -1 && isIRVisible(&ptbl[c->curRadarTarget], m, t))
  1442. X        return c->curRadarTarget;
  1443. X
  1444. X/*
  1445. X *  Look for a target.  Designate the closest one as a new target.
  1446. X */
  1447. X
  1448. X    min = 1000000.0;
  1449. X    n = -1;
  1450. X    for (i=0, p=ptbl; i<MAXPLAYERS; ++i, ++p) {
  1451. X        if (p == c)
  1452. X            continue;
  1453. X        if (p->type != CT_FREE)
  1454. X        if (isIRVisible (p, m, &tNew)) {
  1455. X            m1 = mag(tNew);
  1456. X            if (m1 < min) {
  1457. X                n = i;
  1458. X                min = m1;
  1459. X                tMin = tNew;
  1460. X            }
  1461. X        }
  1462. X    }
  1463. X
  1464. X    *t = tMin;
  1465. X    return n;
  1466. X}
  1467. X
  1468. Xvoid createMissileEyeSpace (c, eyeSpace)
  1469. Xcraft    *c;
  1470. XVMatrix    *eyeSpace; {
  1471. X
  1472. X    VPoint    CntrInt, up, C1, C2;
  1473. X    VMatrix    mtx, es;
  1474. X    double    Hypotenuse, h1, SinA, CosA;
  1475. X
  1476. X/*
  1477. X *  Create an eyeSpace transformation matrix to convert from global to
  1478. X *  local coordinates.
  1479. X */
  1480. X
  1481. X    CntrInt.x = c->Sg.x + c->trihedral.m[0][0];
  1482. X    CntrInt.y = c->Sg.y + c->trihedral.m[1][0];
  1483. X    CntrInt.z = c->Sg.z + c->trihedral.m[2][0];
  1484. X
  1485. X/*
  1486. X *  If the missile has a gyroscope, then it can determine which way "down" is
  1487. X *  and, hence, compensate for gravity.  Here, we'll compensate by pointing
  1488. X *  the nose of the missile up by a maximum of 12 degrees at all times.
  1489. X */
  1490. X
  1491. X    if (c->flags & FL_HAS_GYRO)
  1492. X        if (c->curThrust > 0.0)
  1493. X            CntrInt.z += 0.208;
  1494. X        else
  1495. X            CntrInt.z += 0.30;
  1496. X
  1497. X    up.x = c->Sg.x - c->trihedral.m[0][2];
  1498. X    up.y = c->Sg.y - c->trihedral.m[1][2];
  1499. X    up.z = c->Sg.z - c->trihedral.m[2][2];
  1500. X
  1501. X    VIdentMatrix (eyeSpace);
  1502. X    eyeSpace->m[0][3] = -c->Sg.x;
  1503. X    eyeSpace->m[1][3] = -c->Sg.y;
  1504. X    eyeSpace->m[2][3] = -c->Sg.z;
  1505. X    VTransform(&CntrInt, eyeSpace, &C1);
  1506. X
  1507. X    VIdentMatrix (&mtx);
  1508. X    Hypotenuse = sqrt(C1.x * C1.x + C1.y * C1.y);
  1509. X    if (Hypotenuse > 0.0) {
  1510. X        CosA = C1.y / Hypotenuse;
  1511. X        SinA = C1.x / Hypotenuse;
  1512. X        mtx.m[0][0] = CosA;
  1513. X        mtx.m[1][0] = SinA;
  1514. X        mtx.m[0][1] = -SinA;
  1515. X        mtx.m[1][1] = CosA;
  1516. X        es = *eyeSpace;
  1517. X        VMatrixMult(&es, &mtx, eyeSpace);
  1518. X    }
  1519. X
  1520. X    VTransform(&CntrInt, eyeSpace, &C2);
  1521. X    VIdentMatrix (&mtx);
  1522. X    Hypotenuse = sqrt(C2.y * C2.y + C2.z * C2.z);
  1523. X    if (Hypotenuse > 0.0) {
  1524. X        CosA = C2.y / Hypotenuse;
  1525. X        SinA = -C2.z / Hypotenuse;
  1526. X        mtx.m[1][1] = CosA;
  1527. X        mtx.m[2][1] = SinA;
  1528. X        mtx.m[1][2] = -SinA;
  1529. X        mtx.m[2][2] = CosA;
  1530. X        es = *eyeSpace;
  1531. X        VMatrixMult(&es, &mtx, eyeSpace);
  1532. X    }
  1533. X
  1534. X        VTransform (&up, eyeSpace, &C2);
  1535. X    VIdentMatrix (&mtx);
  1536. X    h1 = sqrt (C2.y * C2.y + C2.z * C2.z);
  1537. X    Hypotenuse = sqrt(C2.x * C2.x + h1 * h1);
  1538. X    if (Hypotenuse > 0.0) {
  1539. X        CosA = h1 / Hypotenuse;
  1540. X        SinA = C2.x / Hypotenuse;
  1541. X        if (C2.z < 0.0) {
  1542. X            CosA = -CosA;
  1543. X        }
  1544. X        mtx.m[0][0] = CosA;
  1545. X        mtx.m[2][0] = SinA;
  1546. X        mtx.m[0][2] = -SinA;
  1547. X        mtx.m[2][2] = CosA;
  1548. X        es = *eyeSpace;
  1549. X        VMatrixMult(&es, &mtx, eyeSpace);
  1550. X    }
  1551. X
  1552. X    VIdentMatrix (&mtx);
  1553. X    mtx.m[1][1] = 0.0;
  1554. X    mtx.m[2][1] = 1.0;
  1555. X    mtx.m[1][2] = 1.0;
  1556. X    mtx.m[2][2] = 0.0;
  1557. X    es = *eyeSpace;
  1558. X    VMatrixMult(&es, &mtx, eyeSpace);
  1559. X
  1560. X}
  1561. X
  1562. Xvoid trackTarget (c)
  1563. Xcraft *c; {
  1564. X
  1565. X    VMatrix eyeSpace, mtx, mtx1;
  1566. X    VPoint    t, t1;
  1567. X    double    v, h, m, maxTurnSlope, aMax = 30.0 * a;
  1568. X    double    deltaRoll, deltaPitch, deltaYaw;
  1569. X    double    cosR, sinR;
  1570. X
  1571. X    createMissileEyeSpace (c, &eyeSpace);
  1572. X
  1573. X/*
  1574. X *  Now let's get to target tracking;  the missile won't start tracking until
  1575. X *  0.60 seconds has elapsed.  Then, if we don't already have a target
  1576. X *  designated, get one.
  1577. X */
  1578. X
  1579. X    if (curTime - c->createTime < 0.60) {
  1580. X        t.x = 0.0;
  1581. X        t.y = 0.0;
  1582. X        t.z = 1.0;
  1583. X    }
  1584. X    else if ((c->curRadarTarget = getIRTarget(c, &eyeSpace, &t)) == -1) {
  1585. X        if (mdebug)
  1586. X            printf ("Missile elects to self-destruct\n");
  1587. X        killMissile (c);
  1588. X        return;
  1589. X    }
  1590. X
  1591. X    t.x = t.x / t.z;
  1592. X    t.y = t.y / t.z;
  1593. X
  1594. X    h = sqrt (t.x*t.x + t.y*t.y);
  1595. X    v = mag (c->Cg);
  1596. X
  1597. X/*
  1598. X *  We'll constrain missile turns to a 20 degree/second unless it's velocity
  1599. X *  would make that greater than 30g's.
  1600. X */
  1601. X
  1602. X    if ((m=(v*v - aMax*aMax/4.0)) > 0.0)
  1603. X        maxTurnSlope = aMax / (2.0 * sqrt (m)) * deltaT;
  1604. X
  1605. X    else
  1606. X        maxTurnSlope = 0.3639 * deltaT;
  1607. X
  1608. X    if (mdebug)
  1609. X        printf ("slope = %g; maxTurnSlope = %g\n", h, maxTurnSlope);
  1610. X
  1611. X    if (h > maxTurnSlope) {
  1612. X        t.x = t.x * maxTurnSlope / h;
  1613. X        t.y = t.y * maxTurnSlope / h;
  1614. X    }
  1615. X
  1616. X        cosR = cos (c->curRoll);
  1617. X    sinR = sin (c->curRoll);
  1618. X
  1619. X    deltaRoll = 0.0;
  1620. X    deltaPitch = atan (t.y);
  1621. X    deltaYaw   = atan (t.x);
  1622. X
  1623. X/*
  1624. X *  Re-orient the velocity vector towards our new direction.
  1625. X */
  1626. X
  1627. X        VIdentMatrix (&mtx);
  1628. X    if (deltaPitch != 0.0)
  1629. X        VRotate (&mtx, YRotation, - deltaPitch);
  1630. X    if (deltaYaw != 0.0)
  1631. X        VRotate (&mtx, ZRotation, deltaYaw);
  1632. X    VTransform (&(c->Cg), &(c->Itrihedral), &t);
  1633. X    VTransform (&t, &mtx, &t1);
  1634. X    VTransform (&t1, &(c->trihedral), &(c->Cg));
  1635. X
  1636. X    if (mdebug)
  1637. X        printf ("Missile changes: pitch: %g, yaw: %g.\n",
  1638. X            RADtoDEG(deltaPitch), RADtoDEG(deltaYaw));
  1639. X
  1640. X    buildEulerMatrix (deltaRoll, deltaPitch, deltaYaw, &mtx);
  1641. X    VMatrixMult (&mtx, &c->trihedral, &mtx1);
  1642. X    c->trihedral = mtx1;
  1643. X
  1644. X    transpose (&c->trihedral, &c->Itrihedral);
  1645. X    euler (c);
  1646. X
  1647. X}
  1648. END_OF_FILE
  1649. if test 10544 -ne `wc -c <'acm/fsim/missile.c'`; then
  1650.     echo shar: \"'acm/fsim/missile.c'\" unpacked with wrong size!
  1651. fi
  1652. # end of 'acm/fsim/missile.c'
  1653. fi
  1654. echo shar: End of archive 5 \(of 9\).
  1655. cp /dev/null ark5isdone
  1656. MISSING=""
  1657. for I in 1 2 3 4 5 6 7 8 9 ; do
  1658.     if test ! -f ark${I}isdone ; then
  1659.     MISSING="${MISSING} ${I}"
  1660.     fi
  1661. done
  1662. if test "${MISSING}" = "" ; then
  1663.     echo You have unpacked all 9 archives.
  1664.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1665. else
  1666.     echo You still need to unpack the following archives:
  1667.     echo "        " ${MISSING}
  1668. fi
  1669. ##  End of shell archive.
  1670. exit 0
  1671. -- 
  1672. Riley Rainey            Internet: riley@mips.com
  1673. MIPS Computer Systems        Phone:    +1 214 770-7979
  1674. Dallas, Texas
  1675.